﻿#include "map.h"

Map::Map()
{

}

Map::Map(QWidget *parent):QWidget(parent){
    setFixedSize(1100, 980);
    add(100,150,110,900);
    add(100,150,1000,140);
    add(1000,140,1010,910);
    add(100,900,1000,910);
    add(190,150,200,275);
    add(900,775,910,900);
    add(370,150,380,275);
    add(370,275,550,285);
    add(710,775,900,785);
    add(100, 150, 110, 900);
    add(100, 150, 1000, 140);
    add(1000, 140, 1010, 910);
    add(100, 900, 1000, 910);

    // 中心十字隔断
    add(490, 450, 610, 460);  // 水平
    add(550, 400, 560, 650);  // 垂直

    // 四周小障碍物 (对称放置)
    const int offsets[] = {150, 350, 650, 850};
    for (int x : offsets) {
        add(x, 300, x+30, 310);
        add(x, 700, x+30, 710);
        add(300, x, 310, x+30);
        add(700, x, 710, x+30);
    }
}

void Map::add(double x1,double y1,double x2,double y2){
    date_map temp;
    temp.x1=x1;
    temp.x2=x2;
    temp.y1=y1;
    temp.y2=y2;
    maps.push_back(temp);
}


void Map::paintEvent(QPaintEvent *event){
    Q_UNUSED(event);
    vector<date_map>::iterator it=maps.begin();
    QPainter painter(this);
    painter.setPen(QPen(Qt::black,1));
    while(it!=maps.end()){
        QPolygon wall;
        wall.append(QPoint(it->x1,it->y1));
        wall.append(QPoint(it->x1,it->y2));
        wall.append(QPoint(it->x2,it->y2));
        wall.append(QPoint(it->x2,it->y1));
        painter.setBrush(Qt::gray);
        painter.drawPolygon(wall);
        it++;
    }
}
